1. Technical Field
Embodiments of the invention relate to a data processing system. In particular, embodiments of the invention relate to provisioning services in a data center. Still more particularly, embodiments of the invention relate to providing a design pattern for automating service provisioning in a data center.
2. Description of Related Art
In a data center, an application deployment template may be used to represent multi-tiered applications or service and deploy applications. As described in related patent application entitled “Method and System for Managing Application Deployment”, which is incorporated by reference above, a deployment plan may be developed containing an outline of resources and configurations used for deployment based on resource dependency characterization of the applications to enable deployment, logical characterization and network characterization of desired deployment.
In particular, as described in related patent application entitled “Method and System for Establishing a Deployment Plan for an Application”, which is incorporated by reference above, a deployment plan describes dependencies between an application's elements and physical and networking components of a deployment. The deployment plan also provides a framework of steps for realizing application deployment within a system for managing deployment of an application. The deployment plan may be established by a user provided logical application structure for an application to be deployed and a chosen application deployment template comprising logical deployment template and network topology template. The logical deployment template defines nodes for supporting deployment and the network topology template defines configuration elements for resolving dependencies between nodes.
While application deployment template is one of the mechanisms that can be used for automated provisioning of services, the availability of resources needs to be considered when building a deployment plan and before using the template to automate deployment. Currently, users have to manually verify that resources are available before provisioning of service is initiated. Thus, administrators have to manually track resource availabilities. For example, an administrator has to make sure that storage space, networking, and servers are available for deployment of an application.
Since administrators are required to manually track resource availabilities, resources may be under utilized. In the process of provisioning services, administrators may not have noticed that other resources are available at a given time. Consequently, resources may not be reused when the application is un-deployed.
With current data center management solutions, automated service provisioning results in two failures. The first failure is that application delivery to data center consumers is not guaranteed at the needed time. Thus, administrators have to determine which application is deployed at what time. The second failure is that resources may be under utilized, since resource usage is tracked manually by the administrators. Therefore, it would be advantageous to have a design pattern for automating provisioning services, which provides on time application delivery and provides better management of resource usage.